﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace DiscoveryLogic.DataViz.NetworkDiagram.NetworkData.Citations 
{
    ///<summary>
    ///</summary>
	[Serializable, NetworkDataClass("ProjectID", "ProjectID", "CitedProjectIDs", "ProjectID", LinkMethod.Contains)]
    public class GrantCitationDO : NetworkDataObject
    {
        
        private int _ProjectID;
        /// <summary></summary>
        [Filterable(true, SqlDbType.Int), Linkable(true, LinkMethod.Equals)]
        public int ProjectID
        {
            get
            {
                return this._ProjectID;
            }
            set
            {
                this._ProjectID = value;
            }
        }

        private string _GrantNumber;
        /// <summary></summary>
        [Filterable(true, SqlDbType.VarChar)]
        public string GrantNumber
        {
            get
            {
                return this._GrantNumber;
            }
            set
            {
                this._GrantNumber = value;
            }
        }

        private int _ExternalOrgID;
        /// <summary></summary>
        [Filterable(true, SqlDbType.Int)]
        public int ExternalOrgID
        {
            get
            {
                return this._ExternalOrgID;
            }
            set
            {
                this._ExternalOrgID = value;
            }
        }

        private string _ExternalOrgName;
        /// <summary></summary>
        [Filterable(true, SqlDbType.VarChar)]
        public string ExternalOrgName
        {
            get
            {
                return this._ExternalOrgName;
            }
            set
            {
                this._ExternalOrgName = value;
            }
        }

        private List<int> _CitedProjectIDs;
        /// <summary>projectid->frequency</summary>
        [Filterable(false,SqlDbType.Int,true),Linkable(true, LinkMethod.Contains)]
        public List<int> CitedProjectIDs
        {
            get
            {
                return this._CitedProjectIDs;
            }
            set
            {
                this._CitedProjectIDs = value;
            }
        }

        private List<string> _CitedGrantNumbers;
        /// <summary></summary>
        [Filterable(false, SqlDbType.VarChar, true), Linkable(true, LinkMethod.Contains)]
        public List<string> CitedGrantNumbers
        {
            get
            {
                return this._CitedGrantNumbers;
            }
            set
            {
                this._CitedGrantNumbers = value;
            }
        }

        private List<int> _CitedExternalOrgIDs;
        /// <summary></summary>
        [Filterable(false, SqlDbType.Int, true), Linkable(true, LinkMethod.Contains)]
        public List<int> CitedExternalOrgIDs
        {
            get
            {
                return this._CitedExternalOrgIDs;
            }
            set
            {
                this._CitedExternalOrgIDs = value;
            }
        }

        private List<string> _CitedExternalOrgNames;
        /// <summary></summary>
        [Filterable(false, SqlDbType.VarChar, true), Linkable(true, LinkMethod.Contains)]
        public List<string> CitedExternalOrgNames
        {
            get
            {
                return this._CitedExternalOrgNames;
            }
            set
            {
                this._CitedExternalOrgNames = value;
            }
        }

        private int _CiteFrequency;
        /// <summary></summary>
        [Filterable(true, SqlDbType.Int)]
        public int CiteFrequency
        {
            get
            {
                return this._CiteFrequency;
            }
            set
            {
                this._CiteFrequency = value;
            }
        }
    }
}
